package demo3;

public class test {
    public static void main(String[] args) {

    }
}

//这个是不满足我们的这个接口隔离的设计原则的


interface Interface1 {
    void method1();

    void method2();

    void method3();

    void method4();

    void method5();
}

class B implements Interface1 {
    //@Override
    public void method1() {
        System.out.println("B实现的method1");
    }

    public void method2() {
        System.out.println("B实现的method2");
    }

    public void method3() {
        System.out.println("B实现的method3");
    }

    public void method4() {
        System.out.println("B实现了method4");
    }

    public void method5() {
        System.out.println("B实现了method5");
    }
}

class D implements Interface1 {
    //@Override
    public void method1() {
        System.out.println("D实现的method1");
    }

    public void method2() {
        System.out.println("D实现的method2");
    }

    public void method3() {
        System.out.println("D实现的method3");
    }

    public void method4() {
        System.out.println("D实现了method4");
    }

    public void method5() {
        System.out.println("D实现了method5");
    }
}


/**
 * A这个类通过接口使用我们的这个B里面的1,2，3这三个方法，并不会全部使用
 */
class A{
    public void depend1(Interface1 i){
        i.method1();
    }

    public void depend2(Interface1 i){
        i.method2();
    }

    public void depend3(Interface1 i){
        i.method3();
    }
}

/**
 * 我们的C通过接口使用这个接口里面的1三个方法
 */
class C{
    public void depend1(Interface1 i){
        i.method1();
    }

    public void depend4(Interface1 i){
        i.method4();
    }

    public void depend5(Interface1 i){
        i.method5();
    }
}